package com.spring.controller.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.spring.controller.dao.JedisDao;
import com.spring.controller.dto.RedisDTO;
import com.spring.controller.service.JedisServiceRemote;


@Service("jedisServiceRemote")
public class JedisServiceRemoteImpl implements JedisServiceRemote {

	@Autowired 
	private JedisDao jedisDao;
	
	/**
	 * 保存字符串
	 * @param key
	 * @return
	 */
	public String getString(String key){
		return jedisDao.getString(key);
	}
	
	/**
	 * 保存字符串（自动销毁）
	 * @param key 关键字
	 * @param jsonString 保存的字符串
	 * @param mtimeout 自动销毁时间(s)【-1：不设置，0：默认时间】
	 * @return
	 */
	public boolean setString(String key, String jsonString, int mtimeout){
		return jedisDao.setString(key, jsonString, mtimeout);
	}

	/**
	 * 保存对象（自动销毁）
	 * @param key 关键字
	 * @param dto 对象
	 * @param mtimeout 自动销毁时间(s)【-1：不设置，0：默认时间】
	 * @return
	 */
	public boolean setObject(String key, Object dto, int mtimeout){
		return jedisDao.setObject(key, dto, mtimeout);
	}
	
	/**
	 * 更新销毁时间
	 * @param key 关键字
	 * @param mtimeout 自动销毁时间(s)【-1：不设置，0：默认时间】
	 * @return
	 */
	public boolean updatetime(String key, int mtimeout){
		return jedisDao.updatetime(key, mtimeout);
	}

	/**
	 * 删除
	 * @param key 关键字
	 * @return
	 */
	public boolean delString(String key){
		return jedisDao.delString(key);
	}
	
	/**
	 * 取RedisDTO
	 * @param key 关键字
	 * @return
	 */
	public RedisDTO getRedisDto(String key) {
		return jedisDao.getRedisDto(key);
	}
	
	/**
	 * 取<T> T 
	 * @param key 关键字
	 * @param t 泛型
	 * @return
	 */
	public <T> T getObject(String key,T t){
		return jedisDao.getObject(key, t);
	}
	
	/******************************************redis队列可能调用新方法********************************************/
	@Override
	public void lpush(byte[] key, byte[] value) {
		jedisDao.lpush(key, value);
	}

	@Override
	public byte[] rpop(byte[] key) {
		return jedisDao.rpop(key);
	}
}
